1. Field
This application relates to methods and systems for hosting a multi-user virtual environment, and to using data for a multi-user virtual environment provided by a host computer.
2. Description of Related Art
Virtual environments, such as those operated on the Utherverse™ VWW platform or on Linden Lab's Second Life, attempt to model the virtual environment after that of the real world. Just like in the physical world, a single person is typically represented by a representative element, such as an avatar. Some virtual environments are rendered in a manner that does not render an avatar for the player, instead presenting the environment as if viewed through the player's eyes. In such environments, other players and/or non-player elements are able to recognize the player's avatar, although the player's own avatar is invisible or rendered partially to the player. Such a rendering scheme mimics the actual point of view through human eyes.
A virtual environment, virtual world, virtual reality, and similar terms may be used to refer to a computer process modeling an interactive, multi-dimensional (typically three or two geometric dimensions plus a time dimension) model hosted by one or more computer servers in communication with multiple client devices operated by different users. Such a computer process may also be described as a multiplayer online game or similar terms. The computer server may operate as an aggregation engine that aggregates input from multiple client devices and serves aggregated output to the participating clients at periodic intervals. Each instance of aggregated output may be referred to as a frame, and more specifically as a “virtual environment frame”; typically, however the aggregated output is not formatted as a conventional video frame. Instead, each virtual environment frame may define a state of the modeled environment at a particular point in time, with reference to locations and/or objects in the modeled environment for which geometric a graphic texture data is stored locally at each client. The virtual environment frame may also include object geometric data or textures for new objects that have not yet been stored at a local client, and other information. Each client device may receive the virtual environment frame and render one or more video frames displaying a viewpoint of the virtual environment that may be controlled locally at the client device. The frequency at which the virtual environment server aggregates the input and serves a corresponding virtual environment frame may be referred to as a frame rate.
The complexity of generating a rendering a viewpoint of a modeled environment for output at the client may vary based on events and location in the virtual world. Therefore, a client device may sometimes be unable to generate and render certain output frames as quickly as it receives each virtual environment frame from the server. This failure may cause perceptible lag at the client, resulting in loss of synchronization with the online multiplayer process. At other times, the same client device may be able to generate and render output frames as quickly as necessary to maintain synchronicity. It would be desirable, therefore, to provide a solution to enable client devices to keep up with the hosted process regardless of the complexity of a particular scene, without adversely impacting the user experience of the online environment generally.